package try_;

/**
 * @Author 小闽
 * @Date 2024/9/23 16:52
 * @PackageName: try_
 * @ClassName: TryCatchExercise01
 * @Description: 异常处理练习
 * @Version 1.0
 */
public class TryCatchExercise01 {
    public static void main(String[] args) {
        System.out.println(ExceptionExercise01.method());
    }
}
class ExceptionExercise01 {
    // 静态方法method()并且返回类型为int
    public static int method(){
        try{
            // 字符串数组，长度为3
            String[] names = new String[3];
            // 判断names中的第二个元素是否为tom
            if (names[1].equals("tom")){ // 这里会出现空指针异常 NullPointerException
                System.out.println(names[1]);
            }else{
                names[3] = "苏宁易购"; // 这里会出现数组下标越界异常 ArrayIndexOutOfBoundsException
            }
            return 1;
        }catch (ArrayIndexOutOfBoundsException e){
            return 2;
        }catch (NullPointerException e){
            // 虽然出现了空指针异常程序会到这里捕获，但是由于finally是必须要执行，
            // 所以这里不会立即返回，而是继续执行finally中的代码即返回4
            return 3;
        }finally { // 这里必须执行
            return 4;
        }
    }
}